package cn.mesmile.flow.listen;

import cn.mesmile.flow.flowabledelegate.Delegate;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.JavaDelegate;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;

/**
 * @author zb
 * @date 2020/12/7 11:32
 * @Description  这个类适用于 【配置类名】 的监听器
 *          【【【【【【【【
 *          execution: DelegateExecution+，持有正在运行的执行的额外信息。
 *          task: DelegateTask持有当前任务的额外信息。请注意：【只在任务监听器的表达式中可用。】
 *          authenticatedUserId: 当前已验证的用户id。如果没有已验证的用户，该变量不可用。
 *          】】】】】】】】
 *
 *              【任务监听器】的使用：   实现 TaskListener
 *
 *                分为四个阶段中任选一个阶段执行： create、assignment、complete、delete
 *
 *                【class(类名)】: cn.mesmile.flow.listen.ManagerTaskHandler
 *
 *                【表达式】使用方式详见:
 *                {@link Delegate}
 *                @see cn.mesmile.flow.flowabledelegate.Delegate#test(DelegateTask task)}
 *
 *              【执行监听器】的使用：   实现 JavaDelegate
 *
 *              表达式：${approved}，这是${approved == true}的简写
 *              flowable:candidateGroups="managers"   【候选人组】
 *              flowable:assignee="${employee}"       【候选人】
 *
 *              public class CallExternalSystemDelegate implements JavaDelegate
 *              flowable:class="org.flowable.CallExternalSystemDelegate"
 *
 */
public class ManagerTaskHandler implements JavaDelegate {

//    /**
//     * @param delegateTask
//     */
//    @Override
//    public void notify(DelegateTask delegateTask) {
//
//        System.out.println(">>>>>>>>>>> manager 走到了这个步骤");
//
////        delegateTask.setAssignee("manager");
//    }


    @Override
    public void execute(DelegateExecution execution) {
        System.out.println(">>>>>>>>>>> manager 走到了这个步骤");
    }
}
